package com.fesine.ext.util;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Date;

/**
 * 将结果集转换成json对象
 * @author Soly
 *
 */
public class JsonUtil {

	public static JSONArray formatRSToJsonArray(ResultSet rs) throws Exception{
		//获取整个表的数据
		ResultSetMetaData md = rs.getMetaData();
		int num = md.getColumnCount();//取得记录数
		JSONArray array = new JSONArray();//创建JSONArray对象
		//拼装array对象
		while(rs.next()){
			//创建JsonObject对象，将纵向List转换成json格式的横向数据
			JSONObject jsonObject = new JSONObject();
			for (int i = 1; i <= num; i++) {
				Object o = rs.getObject(i);
				//判断o对象是否是Date格式实例,如果是则转换成"yyyy-MM-dd"字符串
				if(o instanceof Date){
					jsonObject.put(md.getColumnName(i), DateUtil.formatDate((Date) o, "yyyy-MM-dd"));
				}else{
					jsonObject.put(md.getColumnName(i), rs.getObject(i));
				}
			}
			array.add(jsonObject);
		}
		return array;
	}
}
